热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

深入探索JavaScript中Array数组对象的基本操作与应用

篇首语:本文由编程笔记#小编为大家整理,主要介绍了Javascript 学习-3.Array数组对象基本操作相关的知识,希望对你有一定的参考价值。 前言 Javascript 中Array 数组的一些

篇首语:本文由编程笔记#小编为大家整理,主要介绍了Javascript 学习-3.Array数组对象基本操作相关的知识,希望对你有一定的参考价值。



前言

Javascript 中Array 数组的一些基本操作方法


Array数组定义

可以直接使用中括号定义一个数组, 数组里面的成员可以是任意类型

var x = ['hello', 'world', true, 22.2, [1, 2,3 ]];
console.log(x);

定义一个空数组,可以用[]

var x = [];
console.log(x); // []

也可以使用new Array() 来创建一个数组对象

var a = new Array();
console.log(a);

那么此时定义的是一个空数组

通过数组下标给数组添加成员

var a = new Array();
console.log(a); // []
a[0] = 'hello';
a[1] = 'world';
a[2] = true;
console.log(a) // ['hello', 'world', true]

可以直接在new Array() 对象的时候,同时给数组添加成员

var a = new Array('hello', 'world', true, 22.2, [1, 2,3 ]);
console.log(a) // ['hello', 'world', true, 22.2, Array(3)];

我们可以定义一个指定长度的数组对象

var cars=new Array(3);
console.log(cars);

那么这个数组是长度length属性是3,每个成员都是empty(空).


数组通过下标取值

数组通过下标取值,从0开始

var x = ['hello', 'world', true, 12]
// 下标取值, 从0开始
a = x[0]
b = x[1]
console.log(a) // hello
console.log(b) // world

在python中可以通过下标-1反着取倒数第一个值,Javascript中没这种取值方法

当数组的下标不在它取值范围内,如x有4个成员,那么取值是0-3,非0-3的数字下标取值,得到结果是undefined

var x = ['hello', 'world', true, 12]
// 下标取值, 从0开始
c = x[-1]
d = x[6]
console.log(c) // undefined
console.log(d) // undefined

当数组下标是一个非数字类型,取值也是undefined

var x = ['hello', 'world', true, 12]
// 下标取值, 从0开始
c = x['hello']
console.log(c) // undefined

给数组元素重新赋值

数组中的成员可以是任意数据类型,数组中的成员是可变的,可以重新赋值

var x = ['hello', 'world', true, 12]
// 下标取值, 从0开始
x[0] = 'yoyo'
x[3] = 12.22
console.log(x) // ['yoyo', 'world', true, 12.22]

当下标不在x的成员取值0-3的数字,比如我给下标4赋值

var x = ['hello', 'world', true, 12]
// 下标取值, 从0开始
x[4] = 'aa'
console.log(x) // ['hello', 'world', true, 12, 'aa']

那么此时会在数组后面追加一个元素

如果下标跳过4,直接给个6呢?

var x = ['hello', 'world', true, 12]
// 下标取值, 从0开始
x[6] = '66'
console.log(x) // ['hello', 'world', true, 12, 空属性 × 2, '66']

那么此时下标4和5的值会被赋值empty,数组的长度会变成7

此时通过下标4和5取值都是undefined,下标6取值是’66’

var x = ['hello', 'world', true, 12]
// 下标取值, 从0开始
x[6] = '66'
console.log(x) // ['hello', 'world', true, 12, 空属性 × 2, '66']
console.log(x[4]) // undefined
console.log(x[6]) // 66

如果下标不是一个数字,是一个字符串,那么此时并不会报错,它会称为数组的一个属性,因为数组是一个对象,可以有属性

var x = ['hello', 'world', true, 12]
// 下标取值, 从0开始
x['user'] = 'yoyo'
console.log(x) // ['hello', 'world', true, 12, user: 'yoyo']
console.log(x.length) // 4

添加属性不会改变数组的长度,x的值依然是4

数组的属性可以取值

var x = ['hello', 'world', true, 12]
// 下标取值, 从0开始
x['user'] = 'yoyo'
console.log(x) // ['hello', 'world', true, 12, user: 'yoyo']
console.log(x.user) // yoyo

给数组添加属性这种操作一般很少会用


Array数组添加新的成员

.push方法可以给数组添加成员,并返回当前数组的长度

var x = [];
x.push('hello')
x.push('world')
res = x.push('aa') // push 返回 length
console.log(res) // 3

unshift向数组的开头添加一个或更多元素,并返回新的长度。

var x = ['hello', 'world'];
res = x.unshift('aa') // 往数组前面加新元素,返回length
console.log(x) // ['aa', 'hello', 'world']
console.log(res) // 3

Array 删除成员

pop() 是弹出数组中最后一个成员,并返回该值

var x = ['hello', 'world', 'aa'];
a = x.pop();
console.log(a) // aa
console.log(x) // ['hello', 'world']

shift() 弹出数组中第一个成员,并返回该值

var x = ['hello', 'world', 'aa'];
a = x.shift();
console.log(a) // hello
console.log(x) // ['world', 'aa']

length获取数组的长度

.length 属性获取数组的长度

var x = ['hello', 'world', 'aa'];
console.log(x.length) // 3

isArray() 判断数组

判断一个对象是不是数组Array.isArray(obj)

var x = ['hello', 'world', 'aa'];
console.log(Array.isArray(x)) // true

join 数组拼接成字符串

使用语法.join('连接符')

var x = ['hello', 'world', 'aa'];
console.log(x.join('_')) // hello_world_aa

reverse() 反转数组

reverse() 反转数组

var x = ['hello', 'world', 'aa'];
console.log(x.reverse()) // ['aa', 'world', 'hello']

数组方法

数组常用方法汇总


方法描述
concat()连接两个或更多的数组,并返回结果。
copyWithin()从数组的指定位置拷贝元素到数组的另一个指定位置中。
entries()返回数组的可迭代对象。
every()检测数值元素的每个元素是否都符合条件。
fill()使用一个固定值来填充数组。
filter()检测数值元素,并返回符合条件所有元素的数组。
find()返回符合传入测试(函数)条件的数组元素。
findIndex()返回符合传入测试(函数)条件的数组元素索引。
forEach()数组每个元素都执行一次回调函数。
from()通过给定的对象中创建一个数组。
includes()判断一个数组是否包含一个指定的值。
indexOf()搜索数组中的元素,并返回它所在的位置。
isArray()判断对象是否为数组。
join()把数组的所有元素放入一个字符串。
keys()返回数组的可迭代对象,包含原始数组的键(key)。
lastIndexOf()返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。
map()通过指定函数处理数组的每个元素,并返回处理后的数组。
pop()删除数组的最后一个元素并返回删除的元素。
push()向数组的末尾添加一个或更多元素,并返回新的长度。
reduce()将数组元素计算为一个值(从左到右)。
reduceRight()将数组元素计算为一个值(从右到左)。
reverse()反转数组的元素顺序。
shift()删除并返回数组的第一个元素。
slice()选取数组的的一部分,并返回一个新数组。
some()检测数组元素中是否有元素符合指定条件。
sort()对数组的元素进行排序。
splice()从数组中添加或删除元素。
toString()把数组转换为字符串,并返回结果。
unshift()向数组的开头添加一个或更多元素,并返回新的长度。
valueOf()返回数组对象的原始值。

推荐阅读
  • JavaScript中的数组是数据集合的核心结构之一,内置了多种实用的方法。掌握这些方法不仅能提高开发效率,还能显著提升代码的质量和可读性。本文将详细介绍数组的创建方式及常见操作方法。 ... [详细]
  • 在高并发需求的C++项目中,我们最初选择了JsonCpp进行JSON解析和序列化。然而,在处理大数据量时,JsonCpp频繁抛出异常,尤其是在多线程环境下问题更为突出。通过分析发现,旧版本的JsonCpp存在多线程安全性和性能瓶颈。经过评估,我们最终选择了RapidJSON作为替代方案,并实现了显著的性能提升。 ... [详细]
  • 本文将继续探讨前端开发中常见的算法问题,重点介绍如何将多维数组转换为一维数组以及验证字符串中的括号是否成对出现。通过多种实现方法的解析,帮助开发者更好地理解和掌握这些技巧。 ... [详细]
  • 本题要求在一组数中反复取出两个数相加,并将结果放回数组中,最终求出最小的总加法代价。这是一个经典的哈夫曼编码问题,利用贪心算法可以有效地解决。 ... [详细]
  • 主调|大侠_重温C++ ... [详细]
  • 使用Nginx反向代理实现多域名端口映射
    本文介绍如何通过配置本地hosts文件和Nginx反向代理,实现多个虚拟域名的端口映射,使用户可以通过标准HTTP端口80访问不同后端服务。 ... [详细]
  • 历经三十年的开发,Mathematica 已成为技术计算领域的标杆,为全球的技术创新者、教育工作者、学生及其他用户提供了一个领先的计算平台。最新版本 Mathematica 12.3.1 增加了多项核心语言、数学计算、可视化和图形处理的新功能。 ... [详细]
  • 使用PHP实现网站访客计数器的完整指南
    本文详细介绍了如何利用PHP构建一个简易的网站访客统计系统。通过具体的代码示例和详细的解释,帮助开发者理解和实现这一功能,适用于初学者和有一定经验的开发人员。 ... [详细]
  • 优化网页加载速度:JavaScript 实现图片延迟加载
    本文介绍如何使用 JavaScript 实现图片延迟加载,从而显著提升网页的加载速度和用户体验。 ... [详细]
  • 探讨在PHP开发中,如何选择使用Cookie或数据库来优化网站性能,特别是在处理用户保存的搜索结果时。 ... [详细]
  • 在尝试使用C# Windows Forms客户端通过SignalR连接到ASP.NET服务器时,遇到了内部服务器错误(500)。本文将详细探讨问题的原因及解决方案。 ... [详细]
  • 深入解析动态代理模式:23种设计模式之三
    在设计模式中,动态代理模式是应用最为广泛的一种代理模式。它允许我们在运行时动态创建代理对象,并在调用方法时进行增强处理。本文将详细介绍动态代理的实现机制及其应用场景。 ... [详细]
  • 本章详细介绍SP框架中的数据操作方法,包括数据查找、记录查询、新增、删除、更新、计数及字段增减等核心功能。通过具体示例和详细解析,帮助开发者更好地理解和使用这些方法。 ... [详细]
  • 本文介绍了一种基于选择排序思想的高效排序方法——堆排序。通过使用堆数据结构,堆排序能够在每次查找最大元素时显著提高效率。文章详细描述了堆排序的工作原理,并提供了完整的C语言代码实现。 ... [详细]
  • 本文探讨了符号三角形问题,该问题涉及由相同数量的“+”和“-”符号组成的三角形。通过递归回溯法,可以有效地搜索并计算符合条件的符号三角形的数量。 ... [详细]
author-avatar
书友59289474
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有